#!/usr/bin/env python

# -*- coding: utf-8 -*-

'''

http://matplotlib.sourceforge.net/examples/api/barchart_demo.html
'''

 
from Estatisticas import Estatisticas
from Leitura import Leitura
import matplotlib.pyplot as plt



class CriarGraficos:

    
    def grafico_total_alunos_curso(self, curso):
        
        estatisticas = Estatisticas()
        ler = Leitura()
        
        anos = ler.obter_anos()
        total_alunos_curso = []
        
    
        for ano in anos: 
            total_alunos_curso.append(estatisticas.obter_total_alunos_curso(ano, curso))  
            pass
    
    
        fig = plt.figure()
        ax = fig.add_subplot(1, 1, 1)
        y = total_alunos_curso
        N = len(y)
        ind = range(N)
        rects = ax.bar(ind, y, facecolor='blue',
               align='center', ecolor='black')
        ax.set_ylabel('total de alunos')
        titulo = "Alunos Inscritos no curso" +" "+ curso
        ax.set_title(titulo, fontstyle='italic')
        ax.set_xticks(ind)
        group_labels = anos
        ax.set_xticklabels(group_labels)
        fig.autofmt_xdate()
        self.autolabel(rects, total_alunos_curso)
        plt.show()
        pass          
    
    
    
    def grafico_cursos_nivel_formacao(self, nivel_formacao):
        
        estatisticas = Estatisticas()
        ler = Leitura()
        
        anos = ler.obter_anos()
        total_curso_nivel_formacao = []
        
    
        for ano in anos: 
            total_curso_nivel_formacao.append(estatisticas.obter_cursos_nivel_formacao(ano, nivel_formacao))  
            pass
    
    
        fig = plt.figure()
        ax = fig.add_subplot(1, 1, 1)
        y = total_curso_nivel_formacao
        N = len(y)
        ind = range(N)
        rects = ax.bar(ind, y, facecolor='blue',
               align='center', ecolor='black')
        ax.set_ylabel('total de cursos')
        titulo = "Cursos no nivel de formacao" +" "+ nivel_formacao
        ax.set_title(titulo, fontstyle='italic')
        ax.set_xticks(ind)
        group_labels = anos
        ax.set_xticklabels(group_labels)
        fig.autofmt_xdate()
        self.autolabel(rects, total_curso_nivel_formacao)
        plt.show()
        
        pass          
    
    
    def grafico_total_alunos_nivel_formacao(self, nivel_formacao):
        
        estatisticas = Estatisticas()
        ler = Leitura()
        
        anos = ler.obter_anos()
        total_alunos_nivel_formacao= []
        
    
        for ano in anos: 
            total_alunos_nivel_formacao.append(estatisticas.obter_total_alunos_nivel_formacao(ano, nivel_formacao))  
            pass
    
    
        fig = plt.figure()
        ax = fig.add_subplot(1, 1, 1)
        y = total_alunos_nivel_formacao
        N = len(y)
        ind = range(N)
        rects = ax.bar(ind, y, facecolor='blue',
               align='center', ecolor='black')
        ax.set_ylabel('total de alunos')
        titulo = "Alunos inscritos no nivel de formacao" + " " + nivel_formacao
        ax.set_title(titulo, fontstyle='italic')
        ax.set_xticks(ind)
        group_labels = anos
        ax.set_xticklabels(group_labels)
        fig.autofmt_xdate()
        self.autolabel(rects, total_alunos_nivel_formacao)
        plt.show()
        
        pass          
    
    
    def autolabel(self, rects, valuesArray):
        
        i = 0
        for rect in rects:
            height = rect.get_height()
            plt.text(rect.get_x() + rect.get_width() / 2.,
                      1.005 * height,
                      '%s' % (valuesArray[i]),
                      ha='center', va='bottom')
            i = i + 1
            pass
        pass         
    pass

    pass


#graf = CriarGraficos()
#graf.grafico_total_alunos_curso('2092 - Computadores no Ensino')
#graf.grafico_cursos_nivel_formacao("L - Licenciatura")
#graf.grafico_total_alunos_nivel_formacao("L - Licenciatura")
